home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 2: CDPD 1
/
Almathera Ten on Ten - Disc 2: CDPD 1.iso
/
pd
/
026-050
/
049
/
plot
/
plot.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-13
|
21KB
|
632 lines
/* plot.c -- based on the 3d graphics programs by M. Waite & C. L. Morgan
>>>>>from the book "Graphics Primer for the IBM PC"<<<<<
Converted to Amiga Lattice 'C' by Terry W. Gintz*/
void IMsg();
/* Include the definitions and functions we need */
#include "plot.h"
#include "plotter.c"
#include "palette.c"
#include "save.c"
#include "formula.c"
#include "mouse.c"
extern int save(),palette(),formula();
extern struct ColorMap *p_Co;
extern SHORT mx,my;
double magx,magy;
struct IntuiText titletext = {
2,2,JAM1,0,0,NL,(UBYTE *)"COS(x)*COS(y)",NL};
struct IntuiText Menu0IText [] = {
{
0,3,JAM2, /* Front Pen, Back Pen, Draw Mode */
0,0, /* Left Edge, Top Edge */
&TestFont, /* pointer to Text Font */
" new plot ", /* text of Menu Item */
NULL /* pointer to next IText */
},
{0,3,JAM2,0,0,&TestFont,"modify color",NULL },
{0,3,JAM2,0,0,&TestFont,"save picture",NULL },
{0,3,JAM2,0,0,&TestFont,"new formula ",NULL },
{0,3,JAM2,0,0,&TestFont," quit ",NULL },
};
struct MenuItem Menu0Item[5] = {
{
&Menu0Item[1], /* pointer to next Item */
0,0,120,9, /* Left, Top, Width, Height */
ITEMTEXT | ITEMENABLED | HIGHCOMP, /* Flags */
0, /* no mutual exclude */
(APTR)&Menu0IText[0], /* Render info */
NULL,NULL,NULL, /*Alt Image, Command (amiga) char, subitem*/
MENUNULL /* next select */
},
{&Menu0Item[2],0,9,120,9,ITEMTEXT | ITEMENABLED | HIGHCOMP,
0,(APTR)&Menu0IText[1],NULL,NULL,NULL,MENUNULL},
{&Menu0Item[3],0,18,120,9,ITEMTEXT | ITEMENABLED | HIGHCOMP,
0,(APTR)&Menu0IText[2],NULL,NULL,NULL,MENUNULL},
{&Menu0Item[4],0,27,120,9,ITEMTEXT | ITEMENABLED | HIGHCOMP,
0,(APTR)&Menu0IText[3],NULL,NULL,NULL,MENUNULL},
{NULL,0,36,120,9,ITEMTEXT | ITEMENABLED | HIGHCOMP,
0,(APTR)&Menu0IText[4],NULL,NULL,NULL,MENUNULL}
};
struct IntuiText Menu1IText [] = {
{
0,3,JAM2, /* Front Pen, Back Pen, Draw Mode */
0,0, /* Left Edge, Top Edge */
&TestFont, /* pointer to Text Font */
" 10°", /* text of Menu Item */
NULL /* pointer to next IText */
},
{0,3,JAM2,0,0,&TestFont," 15°",NULL },
{0,3,JAM2,0,0,&TestFont," 20°",NULL },
{0,3,JAM2,0,0,&TestFont," 25°",NULL },
{0,3,JAM2,0,0,&TestFont," 30°",NULL },
{0,3,JAM2,0,0,&TestFont," 35°",NULL },
{0,3,JAM2,0,0,&TestFont," 40°",NULL },
{0,3,JAM2,0,0,&TestFont," 45°",NULL },
{0,3,JAM2,0,0,&TestFont," 50°",NULL },
{0,3,JAM2,0,0,&TestFont," 55°",NULL },
{0,3,JAM2,0,0,&TestFont," 60°",NULL },
{0,3,JAM2,0,0,&TestFont," 65°",NULL },
{0,3,JAM2,0,0,&TestFont," 70°",NULL },
{0,3,JAM2,0,0,&TestFont," 75°",NULL },
{0,3,JAM2,0,0,&TestFont," 80°",NULL },
};
struct MenuItem Menu1Item[15] = {
{
&Menu1Item[1], /* pointer to next Item */
0,0,40,9, /* Left, Top, Width, Height */
ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT, /* Flags */
(~(1 << 0)), /* mutual exclude */
(APTR)&Menu1IText[0], /* Render info */
NULL,NULL,NULL, /*Alt Image, Command (amiga) char, subitem*/
MENUNULL /* next select */
},
{&Menu1Item[2],0,9,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 1)),(APTR)&Menu1IText[1],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[3],0,18,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 2)),(APTR)&Menu1IText[2],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[4],0,27,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 3)),(APTR)&Menu1IText[3],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[5],0,36,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 4)),(APTR)&Menu1IText[4],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[6],0,45,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 5)),(APTR)&Menu1IText[5],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[7],0,54,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 6)),(APTR)&Menu1IText[6],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[8],0,63,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT | CHECKED,
(~(1 << 7)),(APTR)&Menu1IText[7],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[9],0,72,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 8)),(APTR)&Menu1IText[8],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[10],0,81,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 9)),(APTR)&Menu1IText[9],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[11],0,90,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 10)),(APTR)&Menu1IText[10],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[12],0,99,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 11)),(APTR)&Menu1IText[11],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[13],0,108,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 12)),(APTR)&Menu1IText[12],NULL,NULL,NULL,MENUNULL},
{&Menu1Item[14],0,117,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 13)),(APTR)&Menu1IText[13],NULL,NULL,NULL,MENUNULL},
{NULL,1,126,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 14)),(APTR)&Menu1IText[14],NULL,NULL,NULL,MENUNULL},
};
struct IntuiText Menu2IText [] = {
{
0,3,JAM2, /* Front Pen, Back Pen, Draw Mode */
0,0, /* Left Edge, Top Edge */
&TestFont, /* pointer to Text Font */
" 10°", /* text of Menu Item */
NULL /* pointer to next IText */
},
{0,3,JAM2,0,0,&TestFont," 15°",NULL },
{0,3,JAM2,0,0,&TestFont," 20°",NULL },
{0,3,JAM2,0,0,&TestFont," 25°",NULL },
{0,3,JAM2,0,0,&TestFont," 30°",NULL },
{0,3,JAM2,0,0,&TestFont," 35°",NULL },
{0,3,JAM2,0,0,&TestFont," 40°",NULL },
{0,3,JAM2,0,0,&TestFont," 45°",NULL },
{0,3,JAM2,0,0,&TestFont," 50°",NULL },
{0,3,JAM2,0,0,&TestFont," 55°",NULL },
{0,3,JAM2,0,0,&TestFont," 60°",NULL },
{0,3,JAM2,0,0,&TestFont," 65°",NULL },
{0,3,JAM2,0,0,&TestFont," 70°",NULL },
{0,3,JAM2,0,0,&TestFont," 75°",NULL },
{0,3,JAM2,0,0,&TestFont," 80°",NULL },
};
struct MenuItem Menu2Item[15] = {
{
&Menu2Item[1], /* pointer to next Item */
0,0,40,9, /* Left, Top, Width, Height */
ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT, /* Flags */
(~(1 << 0)), /* mutual exclude */
(APTR)&Menu2IText[0], /* Render info */
NULL,NULL,NULL, /*Alt Image, Command (amiga) char, subitem*/
MENUNULL /* next select */
},
{&Menu2Item[2],0,9,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 1)),(APTR)&Menu2IText[1],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[3],0,18,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 2)),(APTR)&Menu2IText[2],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[4],0,27,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 3)),(APTR)&Menu2IText[3],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[5],0,36,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT | CHECKED,
(~(1 << 4)),(APTR)&Menu2IText[4],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[6],0,45,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 5)),(APTR)&Menu2IText[5],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[7],0,54,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 6)),(APTR)&Menu2IText[6],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[8],0,63,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 7)),(APTR)&Menu2IText[7],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[9],0,72,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 8)),(APTR)&Menu2IText[8],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[10],0,81,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 9)),(APTR)&Menu2IText[9],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[11],0,90,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 10)),(APTR)&Menu2IText[10],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[12],0,99,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 11)),(APTR)&Menu2IText[11],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[13],0,108,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 12)),(APTR)&Menu2IText[12],NULL,NULL,NULL,MENUNULL},
{&Menu2Item[14],0,117,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 13)),(APTR)&Menu2IText[13],NULL,NULL,NULL,MENUNULL},
{NULL,1,126,40,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 14)),(APTR)&Menu2IText[14],NULL,NULL,NULL,MENUNULL},
};
struct IntuiText Menu3IText [] = {
{
0,3,JAM2, /* Front Pen, Back Pen, Draw Mode */
0,0, /* Left Edge, Top Edge */
&TestFont, /* pointer to Text Font */
" 5", /* text of Menu Item */
NULL /* pointer to next IText */
},
{0,3,JAM2,0,0,&TestFont," 10",NULL },
{0,3,JAM2,0,0,&TestFont," 15",NULL },
{0,3,JAM2,0,0,&TestFont," 20",NULL },
{0,3,JAM2,0,0,&TestFont," 25",NULL },
{0,3,JAM2,0,0,&TestFont," 30",NULL },
{0,3,JAM2,0,0,&TestFont," 35",NULL },
{0,3,JAM2,0,0,&TestFont," 40",NULL },
};
struct MenuItem Menu3Item[8] = {
{
&Menu3Item[1], /* pointer to next Item */
0,0,30,9, /* Left, Top, Width, Height */
ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT, /* Flags */
(~(1 << 0)), /* mutual exclude */
(APTR)&Menu3IText[0], /* Render info */
NULL,NULL,NULL, /*Alt Image, Command (amiga) char, subitem*/
MENUNULL /* next select */
},
{&Menu3Item[2],0,9,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 1)),(APTR)&Menu3IText[1],NULL,NULL,NULL,MENUNULL},
{&Menu3Item[3],0,18,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 2)),(APTR)&Menu3IText[2],NULL,NULL,NULL,MENUNULL},
{&Menu3Item[4],0,27,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT | CHECKED,
(~(1 << 3)),(APTR)&Menu3IText[3],NULL,NULL,NULL,MENUNULL},
{&Menu3Item[5],0,36,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 4)),(APTR)&Menu3IText[4],NULL,NULL,NULL,MENUNULL},
{&Menu3Item[6],0,45,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 5)),(APTR)&Menu3IText[5],NULL,NULL,NULL,MENUNULL},
{&Menu3Item[7],0,54,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 6)),(APTR)&Menu3IText[6],NULL,NULL,NULL,MENUNULL},
{NULL,0,63,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 7)),(APTR)&Menu3IText[7],NULL,NULL,NULL,MENUNULL}
};
struct IntuiText Menu4IText [] = {
{
0,3,JAM2, /* Front Pen, Back Pen, Draw Mode */
0,0, /* Left Edge, Top Edge */
&TestFont, /* pointer to Text Font */
" 5", /* text of Menu Item */
NULL /* pointer to next IText */
},
{0,3,JAM2,0,0,&TestFont," 10",NULL },
{0,3,JAM2,0,0,&TestFont," 15",NULL },
{0,3,JAM2,0,0,&TestFont," 20",NULL },
{0,3,JAM2,0,0,&TestFont," 25",NULL },
{0,3,JAM2,0,0,&TestFont," 30",NULL },
{0,3,JAM2,0,0,&TestFont," 35",NULL },
{0,3,JAM2,0,0,&TestFont," 40",NULL },
};
struct MenuItem Menu4Item[8] = {
{
&Menu4Item[1], /* pointer to next Item */
0,0,30,9, /* Left, Top, Width, Height */
ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT, /* Flags */
(~(1 << 0)), /* mutual exclude */
(APTR)&Menu4IText[0], /* Render info */
NULL,NULL,NULL, /*Alt Image, Command (amiga) char, subitem*/
MENUNULL /* next select */
},
{&Menu4Item[2],0,9,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 1)),(APTR)&Menu4IText[1],NULL,NULL,NULL,MENUNULL},
{&Menu4Item[3],0,18,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 2)),(APTR)&Menu4IText[2],NULL,NULL,NULL,MENUNULL},
{&Menu4Item[4],0,27,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT | CHECKED,
(~(1 << 3)),(APTR)&Menu4IText[3],NULL,NULL,NULL,MENUNULL},
{&Menu4Item[5],0,36,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 4)),(APTR)&Menu4IText[4],NULL,NULL,NULL,MENUNULL},
{&Menu4Item[6],0,45,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 5)),(APTR)&Menu4IText[5],NULL,NULL,NULL,MENUNULL},
{&Menu4Item[7],0,54,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 6)),(APTR)&Menu4IText[6],NULL,NULL,NULL,MENUNULL},
{NULL,0,63,30,9,ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT,
(~(1 << 7)),(APTR)&Menu4IText[7],NULL,NULL,NULL,MENUNULL}
};
struct Menu BdMenu[5] = {
{
&BdMenu[1], /* ptr to next Menu */
10,0,120,0, /* left,top,width,height--top and height ignored */
MENUENABLED, /* Flags */
" Main ", /* menu title */
&Menu0Item[0] /* First Item in list */
},
{&BdMenu[2],140,0,40,0,MENUENABLED,"Spin",&Menu1Item[0]},
{&BdMenu[3],190,0,40,0,MENUENABLED,"Tip ",&Menu2Item[0]},
{&BdMenu[4],240,0,30,0,MENUENABLED,"M*X",&Menu3Item[0]},
{NULL,280,0,30,0,MENUENABLED,"M*Y",&Menu4Item[0]}
};
int sav,foo;
UWORD color18, color19;
extern char z[30];
extern int spin,tip;
main()
{
USHORT drawing;
drawing=1;
initwind();
init_colors();
init_scr();
strcpy(z,"COS(x)*COS(y)");
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,15,0,0);
SetRGB4(vp,19,15,15,15);
SetPointer(w,&PointImage,14,16,0,0);
magx=20.0;
magy=20.0;
mx=150;
my=90;
spin=45;
tip=30;
plotter();
PrintIText(w->RPort,&titletext,60,175);
ClearPointer(w);
while(drawing)
{
IMsg();
}
} /* end of main */
void IMsg()
{
struct IntuiMessage *BdMsg; /* Intuition message structure */
ULONG Mclass; /* Message class */
USHORT Mcode; /* Message code */
while (BdMsg = (struct IntuiMessage *)GetMsg(w->UserPort))
{
Mclass = BdMsg->Class;
Mcode = BdMsg->Code;
ReplyMsg(BdMsg);
switch (Mclass) {
case CLOSEWINDOW:
clear_colors();
Cleanup();
exit(TRUE);
break;
case MENUPICK:
switch (MENUNUM(Mcode)){
case 0:
switch (ITEMNUM(Mcode)){
case 0:
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,0,15,0);
SetRGB4(vp,19,11,4,0);
SetPointer(w,&CursorImage,14,16,0,0);
mouse();
ClearPointer(w);
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,15,0,0);
SetRGB4(vp,19,15,15,15);
SetPointer(w,&PointImage,14,16,0,0);
plotter();
titletext.IText=(UBYTE *)z;
PrintIText(w->RPort,&titletext,60,175);
ClearPointer(w);
break;
case 1:
palette(w);
break;
case 2:
sav=save(w);
if (sav==1){
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,15,0,0);
SetRGB4(vp,19,15,15,15);
SetPointer(w,&PointImage,14,16,0,0);
SavePicture();
ClearPointer(w);
}
break;
case 3:
foo=formula(w);
if (foo==1){
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,0,15,0);
SetRGB4(vp,19,11,4,0);
SetPointer(w,&CursorImage,14,16,0,0);
mouse();
ClearPointer(w);
color18=GetRGB4(p_Co,18);
color19=GetRGB4(p_Co,19);
SetRGB4(vp,18,15,0,0);
SetRGB4(vp,19,15,15,15);
SetPointer(w,&PointImage,14,16,0,0);
plotter();
titletext.IText=(UBYTE *)z;
PrintIText(w->RPort,&titletext,60,175);
ClearPointer(w);
}
break;
case 4:
clear_colors();
Cleanup();
exit(TRUE);
break;
}
break;
case 1:
switch(ITEMNUM(Mcode)){
case 0:
spin=10;
break;
case 1:
spin=15;
break;
case 2:
spin=20;
break;
case 3:
spin=25;
break;
case 4:
spin=30;
break;
case 5:
spin=35;
break;
case 6:
spin=40;
break;
case 7:
spin=45;
break;
case 8:
spin=50;
break;
case 9:
spin=55;
break;
case 10:
spin=60;
break;
case 11:
spin=65;
break;
case 12:
spin=70;
break;
case 13:
spin=75;
break;
case 14:
spin=80;
break;
}
break;
case 2:
switch(ITEMNUM(Mcode)){
case 0:
tip=10;
break;
case 1:
tip=15;
break;
case 2:
tip=20;
break;
case 3:
tip=25;
break;
case 4:
tip=30;
break;
case 5:
tip=35;
break;
case 6:
tip=40;
break;
case 7:
tip=45;
break;
case 8:
tip=50;
break;
case 9:
tip=55;
break;
case 10:
tip=60;
break;
case 11:
tip=65;
break;
case 12:
tip=70;
break;
case 13:
tip=75;
break;
case 14:
tip=80;
break;
}
break;
case 3:
switch(ITEMNUM(Mcode)){
case 0:
magx=5.0;
break;
case 1:
magx=10.0;
break;
case 2:
magx=15.0;
break;
case 3:
magx=20.0;
break;
case 4:
magx=25.0;
break;
case 5:
magx=30.0;
break;
case 6:
magx=35.0;
break;
case 7:
magx=40.0;
break;
}
break;
case 4:
switch(ITEMNUM(Mcode)){
case 0:
magy=5.0;
break;
case 1:
magy=10.0;
break;
case 2:
magy=15.0;
break;
case 3:
magy=20.0;
break;
case 4:
magy=25.0;
break;
case 5:
magy=30.0;
break;
case 6:
magy=35.0;
break;
case 7:
magy=40.0;
break;
}
break;
}
}
/* end of Class switch */
}/* while */
}
init_scr()
{
SetMenuStrip(w,&BdMenu);
} /* end of init_scr */
Cleanup()
{
CloseWindow(w);
CloseScreen(screen);
}